home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
fdimg
/
—‹Œêsrc.lzh
/
file.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-11-01
|
2KB
|
96 lines
#include "3DDEF.H"
#include "GLOBAL.H"
#include "FORWARD.H"
#include "XCODE.H"
/* ファイル制御 */
/* 既に存在している中から捜す */
/* 無ければマイナスを返す */
int
file_search(STR filename)
{
register int fn;
UBYTE f1[MAXLINE],f2[MAXLINE];
strcpy(f1,filename);
etc_jstrup(f1);
for(fn=0;fn<MAX_FILE;fn++) {
strcpy(f2,FILE_NAMES_ST[fn].CONTENT);
etc_jstrup(f2);
/*printf("(%s)(%s)",f1,f2);binkey();*/
if (!strcmp(f2,f1)) {
return(fn);
}
}
return(-1);
}
/* 指定されたファイル番号をクローズする */
int
file_close(int filenumber)
{
FILE *fp;
if (fp = FILE_POINTERS[filenumber]) {
fclose(fp);
}
}
/* 指定されたファイルをオープンし、指定されたファイル番号とする */
/* 新規ならば 0 を返す */
/* エラーならば -1 を返す */
/* 既にあるファイルを正常にオープンしたなら 1 を返す */
int
file_open(int filenumber,STR filename)
{
FILE *fp;
fp = fopen((char *)filename,"rb"); /* 読み込み、バイナリモード */
strcpy(FILE_NAMES[filenumber].CONTENT,filename);
etc_name_to_full(FILE_NAMES[filenumber].CONTENT);
strcpy(FILE_NAMES_ST[filenumber].CONTENT,filename);
FILE_POINTERS[filenumber] = fp; /* ファイルポインタ */
if (fp && fseek(fp,0L,0)) { /* ファイル先頭へシーク */
return(-1);
}
return(fp != NULL_FP);
}
/* 指定された番号のファイルをテキストに割り当てる */
void
file_set_text(int filenumber,int text_number)
{
TDATA[text_number].TEXT_FILE = filenumber;
init_get_default_tn(text_number);
}
int
file_get_free_number()
{
register int i;
for(i = 0;i < MAX_FILE;i++) {
if ((!*(FILE_NAMES[i].CONTENT))
&& (!*(FILE_NAMES_ST[i].CONTENT))) { /* 無効なのを見付けた */
return(i);
}
}
return(-1); /* 無い */
}
#if 0
void
file_dump(STR fname)
{
int i;
window0();
for(i=0;i<MAX_FILE;i++) {
printf("(%-2d)[%s][%s]\n",i,FILE_NAMES[i].CONTENT,FILE_NAMES_ST[i].CONTENT);
}
printf(fname);
binkey();
}
#endif